<?xml version='1.0' encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <link href="cpip.css" rel="stylesheet" type="text/css" />
    <title>File: /Users/paulross/dev/linux/linux-3.13/include/asm-generic/percpu.h</title>
  </head>
  <body>
    <h1>File: /Users/paulross/dev/linux/linux-3.13/include/asm-generic/percpu.h</h1>
    <p>Green shading in the line number column
means the source is part of the translation unit, red means it is conditionally excluded.
Highlighted line numbers link to the translation unit page. Highlighted macros link to
the macro page.</p>
    <pre><a name="1" /><span class="True">       1:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="cpu.c_macros_noref.html#_X0FTTV9HRU5FUklDX1BFUkNQVV9IX18w"><span class="b">_ASM_GENERIC_PERCPU_H_</span></a>
<a name="2" /><span class="True">       2:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X0FTTV9HRU5FUklDX1BFUkNQVV9IX18w"><span class="b">_ASM_GENERIC_PERCPU_H_</span></a>
<a name="3" /><span class="True">       3:</span> 
<a name="4" /><span class="True">       4:</span> <span class="f">#</span><span class="n">include</span> <span class="f">&lt;</span><span class="b">linux</span><span class="f">/</span><span class="b">compiler</span><span class="f">.</span><span class="b">h</span><span class="f">&gt;</span>
<a name="5" /><span class="True">       5:</span> <span class="f">#</span><span class="n">include</span> <span class="f">&lt;</span><span class="b">linux</span><span class="f">/</span><span class="b">threads</span><span class="f">.</span><span class="b">h</span><span class="f">&gt;</span>
<a name="6" /><span class="True">       6:</span> <span class="f">#</span><span class="n">include</span> <span class="f">&lt;</span><span class="b">linux</span><span class="f">/</span><span class="b">percpu</span><span class="f">-</span><span class="b">defs</span><span class="f">.</span><span class="b">h</span><span class="f">&gt;</span>
<a name="7" /><span class="True">       7:</span> 
<a name="8" /><span class="True">       8:</span> <span class="f">#</span><span class="n">ifdef</span> <a href="cpu.c_macros_ref.html#_Q09ORklHX1NNUF8w"><span class="b">CONFIG_SMP</span></a>
<a name="9" /><span class="True">       9:</span> 
<a name="10" /><span class="True">      10:</span> <span class="k">/*</span>
<a name="11" /><span class="True">      11:</span> <span class="k"> * per_cpu_offset() is the offset that has to be added to a</span>
<a name="12" /><span class="True">      12:</span> <span class="k"> * percpu variable to get to the instance for a certain processor.</span>
<a name="13" /><span class="True">      13:</span> <span class="k"> *</span>
<a name="14" /><span class="True">      14:</span> <span class="k"> * Most arches use the __per_cpu_offset array for those offsets but</span>
<a name="15" /><span class="True">      15:</span> <span class="k"> * some arches have their own ways of determining the offset (x86_64, s390).</span>
<a name="16" /><span class="True">      16:</span> <span class="k"> */</span>
<a name="17" /><span class="True">      17:</span> <span class="f">#</span><span class="n">ifndef</span> <span class="b">__per_cpu_offset</span>
<a name="18" /><span class="True">      18:</span> <span class="m">extern</span> <span class="m">unsigned</span> <span class="m">long</span> <span class="b">__per_cpu_offset</span><span class="f">[</span><a href="cpu.c_macros_ref.html#_TlJfQ1BVU18w"><span class="b">NR_CPUS</span></a><span class="f">]</span><span class="f">;</span>
<a name="19" /><span class="True">      19:</span> 
<a name="20" /><span class="True">      20:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_cGVyX2NwdV9vZmZzZXRfMA__"><span class="b">per_cpu_offset</span></a><span class="f">(</span><span class="b">x</span><span class="f">)</span> <span class="f">(</span><span class="b">__per_cpu_offset</span><span class="f">[</span><span class="b">x</span><span class="f">]</span><span class="f">)</span>
<a name="21" /><span class="True">      21:</span> <span class="f">#</span><span class="n">endif</span>
<a name="22" /><span class="True">      22:</span> 
<a name="23" /><span class="True">      23:</span> <span class="k">/*</span>
<a name="24" /><span class="True">      24:</span> <span class="k"> * Determine the offset for the currently active processor.</span>
<a name="25" /><span class="True">      25:</span> <span class="k"> * An arch may define __my_cpu_offset to provide a more effective</span>
<a name="26" /><span class="True">      26:</span> <span class="k"> * means of obtaining the offset to the per cpu variables of the</span>
<a name="27" /><span class="True">      27:</span> <span class="k"> * current processor.</span>
<a name="28" /><span class="True">      28:</span> <span class="k"> */</span>
<a name="29" /><span class="False">      29:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="cpu.c_macros_ref.html#_X19teV9jcHVfb2Zmc2V0XzA_"><span class="b">__my_cpu_offset</span></a>
<a name="30" /><span class="False">      30:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_X19teV9jcHVfb2Zmc2V0XzA_"><span class="b">__my_cpu_offset</span></a> <a href="cpu.c_macros_ref.html#_cGVyX2NwdV9vZmZzZXRfMA__"><span class="b">per_cpu_offset</span></a><span class="f">(</span><a href="cpu.c_macros_noref.html#_cmF3X3NtcF9wcm9jZXNzb3JfaWRfMA__"><span class="b">raw_smp_processor_id</span></a><span class="f">(</span><span class="f">)</span><span class="f">)</span>
<a name="31" /><span class="True">      31:</span> <span class="f">#</span><span class="n">endif</span>
<a name="32" /><span class="False">      32:</span> <span class="f">#</span><span class="n">ifdef</span> <span class="b">CONFIG_DEBUG_PREEMPT</span>
<a name="33" /><span class="False">      33:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_bXlfY3B1X29mZnNldF8w"><span class="b">my_cpu_offset</span></a> <a href="cpu.c_macros_ref.html#_cGVyX2NwdV9vZmZzZXRfMA__"><span class="b">per_cpu_offset</span></a><span class="f">(</span><a href="cpu.c_macros_noref.html#_c21wX3Byb2Nlc3Nvcl9pZF8w"><span class="b">smp_processor_id</span></a><span class="f">(</span><span class="f">)</span><span class="f">)</span>
<a name="34" /><span class="True">      34:</span> <span class="f">#</span><span class="n">else</span>
<a name="35" /><span class="True">      35:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_bXlfY3B1X29mZnNldF8w"><span class="b">my_cpu_offset</span></a> <a href="cpu.c_macros_ref.html#_X19teV9jcHVfb2Zmc2V0XzA_"><span class="b">__my_cpu_offset</span></a>
<a name="36" /><span class="True">      36:</span> <span class="f">#</span><span class="n">endif</span>
<a name="37" /><span class="True">      37:</span> 
<a name="38" /><span class="True">      38:</span> <span class="k">/*</span>
<a name="39" /><span class="True">      39:</span> <span class="k"> * Add a offset to a pointer but keep the pointer as is.</span>
<a name="40" /><span class="True">      40:</span> <span class="k"> *</span>
<a name="41" /><span class="True">      41:</span> <span class="k"> * Only S390 provides its own means of moving the pointer.</span>
<a name="42" /><span class="True">      42:</span> <span class="k"> */</span>
<a name="43" /><span class="True">      43:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="cpu.c_macros_ref.html#_U0hJRlRfUEVSQ1BVX1BUUl8w"><span class="b">SHIFT_PERCPU_PTR</span></a>
<a name="44" /><span class="True">      44:</span> <span class="k">/* Weird cast keeps both GCC and sparse happy. */</span>
<a name="45" /><span class="True">      45:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_U0hJRlRfUEVSQ1BVX1BUUl8w"><span class="b">SHIFT_PERCPU_PTR</span></a><span class="f">(</span><span class="b">__p</span><span class="f">,</span> <span class="b">__offset</span><span class="f">)</span>    <span class="f">(</span><span class="f">{</span>                \
<a name="46" /><span class="True">      46:</span>     <a href="cpu.c_macros_ref.html#_X192ZXJpZnlfcGNwdV9wdHJfMA__"><span class="b">__verify_pcpu_ptr</span></a><span class="f">(</span><span class="f">(</span><span class="b">__p</span><span class="f">)</span><span class="f">)</span><span class="f">;</span>                    \
<a name="47" /><span class="True">      47:</span>     <a href="cpu.c_macros_ref.html#_UkVMT0NfSElERV8w"><span class="b">RELOC_HIDE</span></a><span class="f">(</span><span class="f">(</span><span class="b">typeof</span><span class="f">(</span><span class="f">*</span><span class="f">(</span><span class="b">__p</span><span class="f">)</span><span class="f">)</span> <a href="cpu.c_macros_ref.html#_X19rZXJuZWxfMA__"><span class="b">__kernel</span></a> <a href="cpu.c_macros_ref.html#_X19mb3JjZV8w"><span class="b">__force</span></a> <span class="f">*</span><span class="f">)</span><span class="f">(</span><span class="b">__p</span><span class="f">)</span><span class="f">,</span> <span class="f">(</span><span class="b">__offset</span><span class="f">)</span><span class="f">)</span><span class="f">;</span> \
<a name="48" /><span class="True">      48:</span> <span class="f">}</span><span class="f">)</span>
<a name="49" /><span class="True">      49:</span> <span class="f">#</span><span class="n">endif</span>
<a name="50" /><span class="True">      50:</span> 
<a name="51" /><span class="True">      51:</span> <span class="k">/*</span>
<a name="52" /><span class="True">      52:</span> <span class="k"> * A percpu variable may point to a discarded regions. The following are</span>
<a name="53" /><span class="True">      53:</span> <span class="k"> * established ways to produce a usable pointer from the percpu variable</span>
<a name="54" /><span class="True">      54:</span> <span class="k"> * offset.</span>
<a name="55" /><span class="True">      55:</span> <span class="k"> */</span>
<a name="56" /><span class="True">      56:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_cGVyX2NwdV8w"><span class="b">per_cpu</span></a><span class="f">(</span><span class="b">var</span><span class="f">,</span> <span class="b">cpu</span><span class="f">)</span> \
<a name="57" /><span class="True">      57:</span>     <span class="f">(</span><span class="f">*</span><a href="cpu.c_macros_ref.html#_U0hJRlRfUEVSQ1BVX1BUUl8w"><span class="b">SHIFT_PERCPU_PTR</span></a><span class="f">(</span><span class="f">&amp;</span><span class="f">(</span><span class="b">var</span><span class="f">)</span><span class="f">,</span> <a href="cpu.c_macros_ref.html#_cGVyX2NwdV9vZmZzZXRfMA__"><span class="b">per_cpu_offset</span></a><span class="f">(</span><span class="b">cpu</span><span class="f">)</span><span class="f">)</span><span class="f">)</span>
<a name="58" /><span class="True">      58:</span> 
<a name="59" /><span class="False">      59:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="cpu.c_macros_ref.html#_X190aGlzX2NwdV9wdHJfMA__"><span class="b">__this_cpu_ptr</span></a>
<a name="60" /><span class="False">      60:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_X190aGlzX2NwdV9wdHJfMA__"><span class="b">__this_cpu_ptr</span></a><span class="f">(</span><span class="b">ptr</span><span class="f">)</span> <a href="cpu.c_macros_ref.html#_U0hJRlRfUEVSQ1BVX1BUUl8w"><span class="b">SHIFT_PERCPU_PTR</span></a><span class="f">(</span><span class="b">ptr</span><span class="f">,</span> <a href="cpu.c_macros_ref.html#_X19teV9jcHVfb2Zmc2V0XzA_"><span class="b">__my_cpu_offset</span></a><span class="f">)</span>
<a name="61" /><span class="True">      61:</span> <span class="f">#</span><span class="n">endif</span>
<a name="62" /><span class="False">      62:</span> <span class="f">#</span><span class="n">ifdef</span> <span class="b">CONFIG_DEBUG_PREEMPT</span>
<a name="63" /><span class="False">      63:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_dGhpc19jcHVfcHRyXzA_"><span class="b">this_cpu_ptr</span></a><span class="f">(</span><span class="b">ptr</span><span class="f">)</span> <a href="cpu.c_macros_ref.html#_U0hJRlRfUEVSQ1BVX1BUUl8w"><span class="b">SHIFT_PERCPU_PTR</span></a><span class="f">(</span><span class="b">ptr</span><span class="f">,</span> <a href="cpu.c_macros_noref.html#_bXlfY3B1X29mZnNldF8w"><span class="b">my_cpu_offset</span></a><span class="f">)</span>
<a name="64" /><span class="True">      64:</span> <span class="f">#</span><span class="n">else</span>
<a name="65" /><span class="True">      65:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_dGhpc19jcHVfcHRyXzA_"><span class="b">this_cpu_ptr</span></a><span class="f">(</span><span class="b">ptr</span><span class="f">)</span> <a href="cpu.c_macros_ref.html#_X190aGlzX2NwdV9wdHJfMA__"><span class="b">__this_cpu_ptr</span></a><span class="f">(</span><span class="b">ptr</span><span class="f">)</span>
<a name="66" /><span class="True">      66:</span> <span class="f">#</span><span class="n">endif</span>
<a name="67" /><span class="True">      67:</span> 
<a name="68" /><span class="True">      68:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X19nZXRfY3B1X3Zhcl8w"><span class="b">__get_cpu_var</span></a><span class="f">(</span><span class="b">var</span><span class="f">)</span> <span class="f">(</span><span class="f">*</span><a href="cpu.c_macros_noref.html#_dGhpc19jcHVfcHRyXzA_"><span class="b">this_cpu_ptr</span></a><span class="f">(</span><span class="f">&amp;</span><span class="f">(</span><span class="b">var</span><span class="f">)</span><span class="f">)</span><span class="f">)</span>
<a name="69" /><span class="True">      69:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X19yYXdfZ2V0X2NwdV92YXJfMA__"><span class="b">__raw_get_cpu_var</span></a><span class="f">(</span><span class="b">var</span><span class="f">)</span> <span class="f">(</span><span class="f">*</span><a href="cpu.c_macros_ref.html#_X190aGlzX2NwdV9wdHJfMA__"><span class="b">__this_cpu_ptr</span></a><span class="f">(</span><span class="f">&amp;</span><span class="f">(</span><span class="b">var</span><span class="f">)</span><span class="f">)</span><span class="f">)</span>
<a name="70" /><span class="True">      70:</span> 
<a name="71" /><span class="True">      71:</span> <span class="f">#</span><span class="n">ifdef</span> <a href="cpu.c_macros_ref.html#_Q09ORklHX0hBVkVfU0VUVVBfUEVSX0NQVV9BUkVBXzA_"><span class="b">CONFIG_HAVE_SETUP_PER_CPU_AREA</span></a>
<a name="72" /><span class="True">      72:</span> <span class="m">extern</span> <span class="m">void</span> <span class="b">setup_per_cpu_areas</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="73" /><span class="True">      73:</span> <span class="f">#</span><span class="n">endif</span>
<a name="74" /><span class="True">      74:</span> 
<a name="75" /><span class="False">      75:</span> <span class="f">#</span><span class="n">else</span> <span class="k">/* ! SMP */</span>
<a name="76" /><span class="False">      76:</span> 
<a name="77" /><span class="False">      77:</span> <span class="f">#</span><span class="n">define</span> <span class="b">VERIFY_PERCPU_PTR</span><span class="f">(</span><span class="b">__p</span><span class="f">)</span> <span class="f">(</span><span class="f">{</span>            \
<a name="78" /><span class="False">      78:</span>     <a href="cpu.c_macros_ref.html#_X192ZXJpZnlfcGNwdV9wdHJfMA__"><span class="b">__verify_pcpu_ptr</span></a><span class="f">(</span><span class="f">(</span><span class="b">__p</span><span class="f">)</span><span class="f">)</span><span class="f">;</span>            \
<a name="79" /><span class="False">      79:</span>     <span class="f">(</span><span class="b">typeof</span><span class="f">(</span><span class="f">*</span><span class="f">(</span><span class="b">__p</span><span class="f">)</span><span class="f">)</span> <a href="cpu.c_macros_ref.html#_X19rZXJuZWxfMA__"><span class="b">__kernel</span></a> <a href="cpu.c_macros_ref.html#_X19mb3JjZV8w"><span class="b">__force</span></a> <span class="f">*</span><span class="f">)</span><span class="f">(</span><span class="b">__p</span><span class="f">)</span><span class="f">;</span>    \
<a name="80" /><span class="False">      80:</span> <span class="f">}</span><span class="f">)</span>
<a name="81" /><span class="False">      81:</span> 
<a name="82" /><span class="False">      82:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_cGVyX2NwdV8w"><span class="b">per_cpu</span></a><span class="f">(</span><span class="b">var</span><span class="f">,</span> <span class="b">cpu</span><span class="f">)</span>    <span class="f">(</span><span class="f">*</span><span class="f">(</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">(</span><span class="b">cpu</span><span class="f">)</span><span class="f">,</span> <span class="b">VERIFY_PERCPU_PTR</span><span class="f">(</span><span class="f">&amp;</span><span class="f">(</span><span class="b">var</span><span class="f">)</span><span class="f">)</span><span class="f">)</span><span class="f">)</span>
<a name="83" /><span class="False">      83:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X19nZXRfY3B1X3Zhcl8w"><span class="b">__get_cpu_var</span></a><span class="f">(</span><span class="b">var</span><span class="f">)</span>    <span class="f">(</span><span class="f">*</span><span class="b">VERIFY_PERCPU_PTR</span><span class="f">(</span><span class="f">&amp;</span><span class="f">(</span><span class="b">var</span><span class="f">)</span><span class="f">)</span><span class="f">)</span>
<a name="84" /><span class="False">      84:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X19yYXdfZ2V0X2NwdV92YXJfMA__"><span class="b">__raw_get_cpu_var</span></a><span class="f">(</span><span class="b">var</span><span class="f">)</span>    <span class="f">(</span><span class="f">*</span><span class="b">VERIFY_PERCPU_PTR</span><span class="f">(</span><span class="f">&amp;</span><span class="f">(</span><span class="b">var</span><span class="f">)</span><span class="f">)</span><span class="f">)</span>
<a name="85" /><span class="False">      85:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_dGhpc19jcHVfcHRyXzA_"><span class="b">this_cpu_ptr</span></a><span class="f">(</span><span class="b">ptr</span><span class="f">)</span>    <a href="cpu.c_macros_ref.html#_cGVyX2NwdV9wdHJfMA__"><span class="b">per_cpu_ptr</span></a><span class="f">(</span><span class="b">ptr</span><span class="f">,</span> <span class="c">0</span><span class="f">)</span>
<a name="86" /><span class="False">      86:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_X190aGlzX2NwdV9wdHJfMA__"><span class="b">__this_cpu_ptr</span></a><span class="f">(</span><span class="b">ptr</span><span class="f">)</span>    <a href="cpu.c_macros_noref.html#_dGhpc19jcHVfcHRyXzA_"><span class="b">this_cpu_ptr</span></a><span class="f">(</span><span class="b">ptr</span><span class="f">)</span>
<a name="87" /><span class="False">      87:</span> 
<a name="88" /><span class="True">      88:</span> <span class="f">#</span><span class="n">endif</span>    <span class="k">/* SMP */</span>
<a name="89" /><span class="True">      89:</span> 
<a name="90" /><span class="True">      90:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="cpu.c_macros_ref.html#_UEVSX0NQVV9CQVNFX1NFQ1RJT05fMA__"><span class="b">PER_CPU_BASE_SECTION</span></a>
<a name="91" /><span class="True">      91:</span> <span class="f">#</span><span class="n">ifdef</span> <a href="cpu.c_macros_ref.html#_Q09ORklHX1NNUF8w"><span class="b">CONFIG_SMP</span></a>
<a name="92" /><span class="True">      92:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_UEVSX0NQVV9CQVNFX1NFQ1RJT05fMA__"><span class="b">PER_CPU_BASE_SECTION</span></a> <span class="e">&quot;.data..percpu&quot;</span>
<a name="93" /><span class="False">      93:</span> <span class="f">#</span><span class="n">else</span>
<a name="94" /><span class="False">      94:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_UEVSX0NQVV9CQVNFX1NFQ1RJT05fMA__"><span class="b">PER_CPU_BASE_SECTION</span></a> <span class="e">&quot;.data&quot;</span>
<a name="95" /><span class="True">      95:</span> <span class="f">#</span><span class="n">endif</span>
<a name="96" /><span class="True">      96:</span> <span class="f">#</span><span class="n">endif</span>
<a name="97" /><span class="True">      97:</span> 
<a name="98" /><span class="True">      98:</span> <span class="f">#</span><span class="n">ifdef</span> <a href="cpu.c_macros_ref.html#_Q09ORklHX1NNUF8w"><span class="b">CONFIG_SMP</span></a>
<a name="99" /><span class="True">      99:</span> 
<a name="100" /><span class="False">     100:</span> <span class="f">#</span><span class="n">ifdef</span> <span class="b">MODULE</span>
<a name="101" /><span class="False">     101:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_UEVSX0NQVV9TSEFSRURfQUxJR05FRF9TRUNUSU9OXzA_"><span class="b">PER_CPU_SHARED_ALIGNED_SECTION</span></a> <span class="e">&quot;&quot;</span>
<a name="102" /><span class="False">     102:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_UEVSX0NQVV9BTElHTkVEX1NFQ1RJT05fMA__"><span class="b">PER_CPU_ALIGNED_SECTION</span></a> <span class="e">&quot;&quot;</span>
<a name="103" /><span class="True">     103:</span> <span class="f">#</span><span class="n">else</span>
<a name="104" /><span class="True">     104:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_UEVSX0NQVV9TSEFSRURfQUxJR05FRF9TRUNUSU9OXzA_"><span class="b">PER_CPU_SHARED_ALIGNED_SECTION</span></a> <span class="e">&quot;..shared_aligned&quot;</span>
<a name="105" /><span class="True">     105:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_UEVSX0NQVV9BTElHTkVEX1NFQ1RJT05fMA__"><span class="b">PER_CPU_ALIGNED_SECTION</span></a> <span class="e">&quot;..shared_aligned&quot;</span>
<a name="106" /><span class="True">     106:</span> <span class="f">#</span><span class="n">endif</span>
<a name="107" /><span class="True">     107:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_UEVSX0NQVV9GSVJTVF9TRUNUSU9OXzA_"><span class="b">PER_CPU_FIRST_SECTION</span></a> <span class="e">&quot;..first&quot;</span>
<a name="108" /><span class="True">     108:</span> 
<a name="109" /><span class="False">     109:</span> <span class="f">#</span><span class="n">else</span>
<a name="110" /><span class="False">     110:</span> 
<a name="111" /><span class="False">     111:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_UEVSX0NQVV9TSEFSRURfQUxJR05FRF9TRUNUSU9OXzA_"><span class="b">PER_CPU_SHARED_ALIGNED_SECTION</span></a> <span class="e">&quot;&quot;</span>
<a name="112" /><span class="False">     112:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_UEVSX0NQVV9BTElHTkVEX1NFQ1RJT05fMA__"><span class="b">PER_CPU_ALIGNED_SECTION</span></a> <span class="e">&quot;..shared_aligned&quot;</span>
<a name="113" /><span class="False">     113:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_UEVSX0NQVV9GSVJTVF9TRUNUSU9OXzA_"><span class="b">PER_CPU_FIRST_SECTION</span></a> <span class="e">&quot;&quot;</span>
<a name="114" /><span class="False">     114:</span> 
<a name="115" /><span class="True">     115:</span> <span class="f">#</span><span class="n">endif</span>
<a name="116" /><span class="True">     116:</span> 
<a name="117" /><span class="True">     117:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="cpu.c_macros_ref.html#_UEVSX0NQVV9BVFRSSUJVVEVTXzA_"><span class="b">PER_CPU_ATTRIBUTES</span></a>
<a name="118" /><span class="True">     118:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_UEVSX0NQVV9BVFRSSUJVVEVTXzA_"><span class="b">PER_CPU_ATTRIBUTES</span></a>
<a name="119" /><span class="True">     119:</span> <span class="f">#</span><span class="n">endif</span>
<a name="120" /><span class="True">     120:</span> 
<a name="121" /><span class="True">     121:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="cpu.c_macros_noref.html#_UEVSX0NQVV9ERUZfQVRUUklCVVRFU18w"><span class="b">PER_CPU_DEF_ATTRIBUTES</span></a>
<a name="122" /><span class="True">     122:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_UEVSX0NQVV9ERUZfQVRUUklCVVRFU18w"><span class="b">PER_CPU_DEF_ATTRIBUTES</span></a>
<a name="123" /><span class="True">     123:</span> <span class="f">#</span><span class="n">endif</span>
<a name="124" /><span class="True">     124:</span> 
<a name="125" /><span class="True">     125:</span> <span class="f">#</span><span class="n">endif</span> <span class="k">/* _ASM_GENERIC_PERCPU_H_ */</span>
<a name="126" /><span class="True">     126:</span> </pre>
  </body>
</html>
